a. Field of the Invention
The present invention relates to a multiplying unit in a computer system and particularly to a multiplying unit capable of executing a population counting instruction.
b. Description of the Related Art
Due to the development of computer systems, data processing can be executed in the computer system at high speed. Therefore, in the field of a graphic display for example, the variable density of a graph can be processed rapidly by the computer system. That is, the variable density is processed at high speed in the computer system by counting the number of "1" bits of numerical data, represented by binary notation, including graphic information. Such counting of the number of "1" bits is called "population counting" and its invoking instruction is called a "population counting instruction". The present invention relates to population counting executed in a computer system.
Population counting has previously been performed by a circuit exclusively provided in the computer system. By such a dedicated population counting circuit, the number of "1" bits in the numerical data, usually consisting of 8 bytes, can be counted. However, the counting is performed byte by byte, so that it takes a lot of time to count up the "1" throughout the numerical data. If the only consideration was the increase of the counting speed, then counting could be performed by the dedicated circuit, every two bytes or more instead of every byte. However, this is not practically realized because, a large quantity of hardware (electric parts) is needed for the dedicated circuit. Thus, the use of the dedicated circuit has a problem that not only the cost for the circuit but also the time to perform the population counting increases. The present invention intends to solve this problem by using a multiplying unit provided in the computer system.
In the computer system, particularly in the recent high speed computer systems such as a super computer, a multiplying unit performs multiplication at high speed, on more than two bytes, using a carry save adder (CSA) and a carry propagate adder (CPA) which are well known adders used in the multiplying unit of the computer system. Accordingly, if the multiplying unit is allowed to be used to perform the population counting, the counting speed of the population counting can be increased without providing the dedicated population counting circuit. Furthermore, in the computer system, the multiplying unit is generally not used so often and also the population counting is not performed so often. Accordingly, it can be said that the use of the multiplying unit for population counting contributes so that the effectiveness of the usage of the multiplying unit increases rather than disturbing the operation of the computer system.
The use of the multiplying unit has been tried by Shoji Nakatani, who is one of the inventors of the present invention, in a laid-open Japanese Patent Application SHOH 62-209621 on Sept. 14, 1987. However, according to the SHOH 62-209621, there is another problem that the multiplying unit includes only one multiplying circuit with a spill adder. Therefore, when a multiplier of a multiplying data is divided into a plurality of elements, the multiplication must be repeated in the multiplying circuit by the number of the elements. For example, when the multiplier consists of 8 bytes and the multiplier is divided into 4 elements, the multiplication must be repeated four times; in this case, a multiplicand of the multiplying data is not divided. Furthermore, the spill adder is needed for compensating lower digits which appear during the repetition of the multiplication, so as to be carried up to the final multiplying results.
Generally, the multiplying unit has two types, a first type and a second type. The first type multiplying unit is one in which size is considered more important than counting speed, so that the first type multiplying unit usually includes only one multiplying circuit. The multiplying unit disclosed in SHOH 62-209621 is of the first type. While, the second type multiplying unit is one in which counting speed is considered more important than size, so that the second type multiplying unit includes a plurality of multiplying circuits (sub-units) operating in parallel. Accordingly, there has been a problem that the SHOH 62-209621 cannot be applied to the second type multiplying unit. The present invention intends to solve this problem.